package com.neusoft.demo10;

import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Manager {
    /**
     * 写方法
     * @param list
     */
    public void writeFile(List<Student> list){

        try {
            //1. 需要使用BufferedWriter处理流 FileWriter节点流
            FileWriter fw=new FileWriter("Student.txt");
            BufferedWriter bw=new BufferedWriter(fw);
            //2. 遍历list集合{
            //   每循环一次从集合中获取一个Student学生对象
            //   获取学生的信息并以字符串的方式写到目标文件student.txt中
            // }
            Iterator<Student> iterator = list.iterator();
            while (iterator.hasNext()) {
                Student student = iterator.next();
                String str = student.getId() + " " + student.getName() + " " + student.getPhone() + " " + student.getEmail();
                bw.write(str);
                bw.newLine();//换行
                //刷新
                bw.flush();
            }
            //3. 释放资源
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }



        //2. 遍历list集合{
        //   每循环一次从集合中获取一个Student学生对象
        //   获取学生的信息并以字符串的方式写到目标文件student.txt中
        // }
        //3. 释放资源
    }

    /**
     * 读
     */
    public List<Student> readFile(String fileName){
        List<Student> list = new ArrayList<>();
        try {
            //1. 创建 BufferedReader  FileReader
            FileReader fr = new FileReader(fileName);
            BufferedReader br = new BufferedReader(fr);
            //2. 循环读取每一行数据(String),拆分字符串(空格)返回一个数组
            String temp;
            while ((temp = br.readLine()) != null) { //1 tom 121212 tom@163.com
                String[] str = temp.split(" ");
                //3. 将数组中的每个元素放到一个Student对象中
                Student s = new Student();
                s.setId(Integer.parseInt(str[0])); //str[0]返回的是字符串  而setId(int)
                s.setName(str[1]);
                s.setPhone(str[2]);
                s.setEmail(str[3]);
                //4. 再将Student对象保存到List集合中
                list.add(s);
            }
            //释放资源
            br.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return list;
    }
}
